home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / netzwerk / pronet / pronet20.lha / ProNET / source / OSdebugging.s < prev    next >
Text File  |  1995-04-07  |  3KB  |  182 lines

  1. ;---------------------------------------------------------------------
  2. ; DEBUG-Stuff
  3. ;
  4.  
  5.         even
  6. dinit        movem.l    d0-d7/a0-a6,-(sp)
  7.         move.l    4.w,a6
  8.         move.l    276(a6),a1
  9.         moveq    #0,d0
  10.         jsr    -300(a6)    ;Priorität auf 0, sonst klappt nix!
  11.         lea    ddosname(pc),a1
  12.         jsr    -408(a6)
  13.         move.l    d0,ddosbase
  14.         move.l    d0,a6
  15.         clr.l    doutput
  16.         move.l    #debugprocname,d1
  17.         moveq    #19,d2
  18.         move.l    #debugprocess-4,d3
  19.         lsr.l    #2,d3
  20.         move.l    #4096,d4
  21.         jsr    -138(a6)
  22.         move.l    d0,debugprocessid
  23.         movem.l    (sp)+,d0-d7/a0-a6
  24.         rts
  25.  
  26.         cnop    0,4
  27. debugprocess    move.l    ddosbase(pc),a6
  28.         move.l    #dconname,d1
  29.         move.l    #1005,d2
  30.         jsr    -30(a6)
  31.         move.l    d0,dconwindow
  32. .waitloop    moveq    #1,d1
  33.         jsr    -198(a6)    ;Delay
  34.         tst.w    dquitflag
  35.         bne.s    .quit
  36.         move.l    doutput(pc),d2
  37.         beq.s    .waitloop
  38.         move.l    dconwindow(pc),d1
  39.         move.l    d2,a0
  40.         moveq    #-1,d3
  41. .1        tst.b    (a0)+
  42.         dbeq    d3,.1
  43.         neg.l    d3
  44.         subq.l    #1,d3
  45.         jsr    -48(a6)
  46.         clr.l    doutput
  47.         bra.s    .waitloop
  48. .quit        move.l    dconwindow(pc),d1
  49.         jsr    -36(a6)
  50.         clr.w    dquitflag
  51.         rts
  52.  
  53. dexit        movem.l    d0-d7/a0-a6,-(sp)
  54.         st    dquitflag
  55.         move.l    ddosbase(pc),a6
  56. .1        moveq    #1,d1
  57.         jsr    -198(a6)
  58.         tst.w    dquitflag
  59.         bne.s    .1
  60.         move.l    4.w,a6
  61.         move.l    ddosbase(pc),a1
  62.         jsr    -414(a6)
  63.         movem.l    (sp)+,d0-d7/a0-a6
  64.         rts
  65.  
  66. dtype        movem.l    d0-d7/a0-a6,-(sp)    ;Text in a0 ausgeben
  67.         move.l    a0,doutput
  68.         move.l    ddosbase(pc),a6
  69. .1        ;moveq    #1,d1
  70.         ;jsr    -198(a6)
  71.         tst.l    doutput
  72.         bne.s    .1
  73.         movem.l    (sp)+,d0-d7/a0-a6
  74.         rts
  75.  
  76. dtypeb        movem.l    d0-d7/a0-a6,-(sp)    ;BSTR ausgeben
  77.             ; a0 BPTR auf BCPL-String
  78.         add.l    a0,a0
  79.         add.l    a0,a0
  80.         lea    dconvbuf(pc),a1
  81.         moveq    #0,d0
  82.         move.b    (a0)+,d0
  83.         subq.w    #1,d0
  84.         bmi.s    .ende
  85. .11        move.b    (a0)+,(a1)+
  86.         dbra    d0,.11
  87.         clr.b    (a1)+
  88.         lea    dconvbuf(pc),a0
  89.         bsr    dtype
  90. .ende        movem.l    (sp)+,d0-d7/a0-a6
  91.         rts
  92.  
  93. dspc        move.l    a0,-(sp)        ;Space drucken
  94.         lea    dspct(pc),a0
  95.         bsr    dtype
  96.         move.l    (sp)+,a0
  97.         rts
  98.  
  99. dcr        move.l    a0,-(sp)        ;Linefeed drucken
  100.         lea    dcrt(pc),a0
  101.         bsr    dtype
  102.         move.l    (sp)+,a0
  103.         rts
  104.  
  105. dtypehex        ;ULONG in d0 als HEX-Zahl ausgeben
  106.         movem.l    d0-d7/a0-a6,-(sp)
  107.         lea    dconvbuf(pc),a0
  108.         bsr    dlong2hex
  109.         move.b    #32,(a0)+
  110.         clr.b    (a0)+
  111.         lea    dconvbuf(pc),a0
  112.         bsr    dtype
  113.         movem.l    (sp)+,d0-d7/a0-a6
  114.         rts
  115.  
  116. dtypedec        ;ULONG in d0 als DEC-Zahl ausgeben
  117.         movem.l    d0-d7/a0-a6,-(sp)
  118.         lea    dconvbuf(pc),a0
  119.         bsr    dlong2dec
  120.         move.b    #32,(a0)+
  121.         clr.b    (a0)+
  122.         lea    dconvbuf(pc),a0
  123.         bsr    dtype
  124.         movem.l    (sp)+,d0-d7/a0-a6
  125.         rts
  126.  
  127. dlong2hex    ;konvertiert LONG in d0 in HEX-String nach (a0)+
  128.         moveq    #7,d1
  129. .1        rol.l    #4,d0
  130.         move.b    d0,d2
  131.         and.b    #$f,d2
  132.         add.b    #48,d2
  133.         cmp.b    #58,d2
  134.         bcs.s    .2
  135.         addq.b    #7,d2
  136. .2        move.b    d2,(a0)+
  137.         dbra    d1,.1
  138.         rts
  139.  
  140. dlong2dec    ;Converts Long in d0 to Dec-String in (a0)+
  141.         tst.l    d0
  142.         bne.s    .0
  143.         move.b    #"0",(a0)+
  144.         rts
  145. .0        lea    dlong2asciitab(pc),a1
  146.         moveq    #9,d1
  147.         moveq    #0,d6
  148. .1        move.l    (a1)+,d2
  149.         move.l    d0,d3
  150.         moveq    #-1,d4
  151. .2        move.l    d3,d5
  152.         sub.l    d2,d3
  153.         cmp.l    d5,d3
  154.         dbhi    d4,.2
  155.         add.l    d2,d3
  156.         move.l    d3,d0
  157.         not.w    d4
  158.         bne.s    .3
  159.         tst.w    d6
  160.         beq.s    .4
  161. .3        st    d6
  162.         add.b    #"0",d4
  163.         move.b    d4,(a0)+
  164. .4        dbra    d1,.1
  165.         rts
  166. dlong2asciitab    dc.l    1000000000,100000000,10000000,1000000,100000
  167.         dc.l    10000,1000,100,10,1
  168.  
  169. dconvbuf    ds.b    200
  170.  
  171. ddosbase    dc.l    0
  172. dconwindow    dc.l    0
  173. doutput        dc.l    0
  174. dquitflag    dc.w    0
  175. debugprocessid    dc.l    0
  176. dconname    dc.b    "CON:0/150/640/106/DEBUG messages..",0
  177. ddosname    dc.b    "dos.library",0
  178. debugprocname    dc.b    "rSt-debug!",0
  179. dspct        dc.b    32,0
  180. dcrt        dc.b    10,0
  181.         cnop    0,4
  182.